package com.ruoyi.job.util;

import org.quartz.DisallowConcurrentExecution;
import org.quartz.JobExecutionContext;

import com.ruoyi.job.domain.SysJob;

/**
 * 定时任务处理（禁止并发执行）
 * 
 * @author ruoyi
 *
 */
// @DisallowConcurrentExecution 的作用： 这个注解的作用是防止同一个 JobDetail 的多个实例同时执行。
// 如果一个任务还在执行中，而调度器尝试再次触发该任务，则新的触发会被阻塞，直到当前任务执行完成。
// 也就是说，同一个任务在任意时间点上只能有一个实例在执行。
@DisallowConcurrentExecution
public class QuartzDisallowConcurrentExecution extends AbstractQuartzJob
{
    @Override
    protected void doExecute(JobExecutionContext context, SysJob sysJob) throws Exception
    {
        JobInvokeUtil.invokeMethod(sysJob);
    }
}
